/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package service;

import dao.Conexion;
import dao.PedidoDAO;
import java.sql.SQLException;
import request.PedidoClienteRequest;
import response.PedidoClienteResponse;

/**
 *
 * @author Miguel
 */
public class PedidosService {
    
    private static PedidoDAO pedidosDAO = new PedidoDAO();
    private static Conexion conexion = new Conexion();

    public String actualizarPedidos() throws SQLException {
        String sms = null;
        try{
            conexion.abrirConexion();
            pedidosDAO.setConexion(conexion);
            conexion.setAutoCommit(false);
            pedidosDAO.ActualizarPedido();
            conexion.commit();
            conexion.cerrarConexion();
            sms="";
            
        }catch(SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            conexion.rollback();
            sms = "Error en BD al actualizar pedidos";
        }
        finally{
            conexion.cerrarConexion();
        }
        return sms;        
    }
    
    public PedidoClienteResponse BuscarPedido(PedidoClienteRequest pedido) {
        PedidoClienteResponse listaPedido = new PedidoClienteResponse();
        try{
            conexion.abrirConexion();
            pedidosDAO.setConexion(conexion);
            listaPedido = pedidosDAO.BuscarPedido(pedido);
            conexion.cerrarConexion();
        }
        catch(SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){          
            System.out.println("Error en BD al listar Pedido" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        } 
        return listaPedido;
    }

    public int obtenerId(String[] diaMesAno) {
        int idPedido = 1;
        try{
            conexion.abrirConexion();
            pedidosDAO.setConexion(conexion);
            idPedido = pedidosDAO.ObtenerId(diaMesAno);
            conexion.cerrarConexion();
        }
        catch(SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){          
            System.out.println("Error en BD al listar Pedido" + e.toString());
        }
        finally{
            try{
                conexion.cerrarConexion();
            }
            catch (SQLException e2){
                System.out.println("Cerramos: " + e2.toString());
            }
        } 
        return idPedido;
    }   

    public String pronostico(int[] pedidos_x_dia, int[] paquetes_x_dia) throws SQLException {
        String sms = null;
        try{
            conexion.abrirConexion();
            pedidosDAO.setConexion(conexion);
            conexion.setAutoCommit(false);
            pedidosDAO.pronostico(pedidos_x_dia,paquetes_x_dia);
            conexion.commit();
            conexion.cerrarConexion();
            sms="";
            
        }catch(SQLException | InstantiationException | IllegalAccessException | ClassNotFoundException e){
            conexion.rollback();
            sms = "Error en BD al actualizar pedidos";
        }
        finally{
            conexion.cerrarConexion();
        }
        return sms;   
    }
}
